import {BaseDataType} from "./BaseDataType.js";

/**
 * @description Boolean数据类型封装
 * @class {BaseBoolean}
 * @extends {BaseDataType} 基础方法
 * @author hhx
 * @date 2024-10-22 16:06:58
 * @version 0.1.2
 */
class BaseBoolean extends BaseDataType {

    /**
     * @description 布尔值属性存放
     * @private
     * @type {boolean} 布尔类型
     */
    _tempBoolean = undefined;

    /**
     * @description boolean类型构造方法
     * @public
     * @constructor
     * @param bool {boolean} 设置的布尔属性值
     */
    constructor(bool) {

        super();

        this._tempBoolean = bool;
    }

    //========================== 基础属性 ==========================

    /**
     * @description 获取 boolean属性
     * @property
     * @protected
     * @return {boolean} true 是 false 否
     */
    get tempBoolean() {
        return this._tempBoolean;
    }

    /**
     * @description 设置 boolean属性
     * @property
     * @protected
     * @parem value {boolean} 设置boolean属性值
     */
    set tempBoolean(value) {
        this._tempBoolean = value;
    }

    //========================== 属性方法 ==========================

    /**
     * @description 获取私有属性
     * @public
     * @returns {boolean} 布尔类型
     */
    getTempBoolean() {
        return this.tempBoolean;
    }

    /**
     * @description 设置布尔值
     * @public
     * @param value {boolean} 设置的布尔值
     */
    setTempBoolean(value) {
        return this.tempBoolean = value;
    }

    //========================== 重载方法 ==========================

    /**
     * @description 重新挂载
     * @public
     * @override
     * @return {string} 字符串
     */
    toString() {
        return super.toString(this.tempBoolean);
    }

    /**
     * @description 重载方法
     * @public
     * @override
     * @return {object} boolean类型对象
     */
    valueOf(arg) {
        return super.valueOf(this.tempBoolean);
    }
}





